#ifndef K_DEBUG_DEF_H
#define K_DEBUG_DEF_H
#pragma once

#include <cstdint>

#pragma pack(push, 1)

struct DebugHeader {
    enum Type { Unknown = 0, Attr, Info, Text, Title };
    explicit DebugHeader(Type t = DebugHeader::Unknown) : type(t) {}
    uint8_t     type;
};

struct DebugAttr {
    DebugAttr() {}
    DebugAttr(uint32_t b, uint32_t f) : backColor(b), foreColor(f) {}
    uint32_t    backColor;
    uint32_t    foreColor;
};

struct DebugInfo {
    DebugInfo() {}
    DebugInfo(uint8_t t, uint32_t l) : title(t), length(l) {}
    uint8_t     title;
    uint32_t    length; // Followed by ANSI stream
};

#pragma pack(pop)

#endif // K_DEBUG_DEF_H